/*
 * Copyright (c) 2012-2013 XXXX XXXXXX, Inc.
 * XXXX Road, XXXX, XXXX State, XXXX Post code, XXXX Country.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of XXXX
 * XXXXXX, Inc. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with XXXX.
 * 
 * History
 * Date        Ver Author        Change Description
 * ----------- --- ------------- ----------------------------------------
 * 08 Jun 2013 001 Karl          Update xpath for application and clock sub menu. 
 */
package test.com.sms.selenium.singlepoint.util;

import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

import test.com.sms.selenium.framework.SeleniumPageUtil;
import test.com.sms.selenium.util.SeleniumUtil;

public class SpHomePageUtil extends SeleniumPageUtil {
	
	// three frames in this page
	/** header frame*/
	public final static String HOME_FRAME_HEADER_NAME = "FramesHeader";
	/** content frame*/
	public final static String HOME_FRAME_CONTENT_NAME = "Content";
	/** footer frame*/
	public final static String HOME_FRAME_FOOTER_NAME = "FramesFooter";
	/** Menu sub frame under content frame*/
	public final static String HOME_FRAME_MENU_NAME = "Menu";
	/** Reports sub frame under content frame*/
	public final static String HOME_FRAME_REPORTS_NAME = "Reports";

	/** Logo img */
	public final static By HOME_IMG_LOGO = By.id("imgLogo");
	/** customer name*/
	public final static By HOME_SPAN_CUSTOMER_NAME = By.id("lblCustomerName");
	/** customer name*/
	public final static By HOME_INPUT_CUSTOMER_NAME = By.id("txtCustomer");
	/** customer name list*/
	public final static By HOME_SPAN_CUSTOMER_NAME_LIST = By.id("aceCustomer_completionListElem");
	/** user list*/
	public final static By HOME_SELECT_USER_LIST = By.id("cboEmulate");
	
	/** user name*/
	public final static By HOME_SPAN_USERNAME = By.id("lblUserName");
	/** logout link*/
	public final static By HOME_LINK_LOGOUT = By.id("LogoutLink");
	/** Last elements in this page, to determine if page is loaded completely.*/
	public final static By HOME_SPAN_EXPIRATION = By.id("ctl44_Expirations_Warranties_Header_lblHeader");
	
	/** Main menu span*/
	private final static String HOME_SPAN_MAIN_MENU_ID_STR = "menu_MainMenu";
	
	/** Main menu items*/
	public final static By HOME_MAIN_MENUS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td");
	public final static By HOME_MAIN_MENU_TICKETING = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Ticketing']");
	public final static By HOME_MAIN_MENU_ACTIVITY_BOARD = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Activity Board']");
	public final static By HOME_MAIN_MENU_SROS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='SROs']");
	public final static By HOME_MAIN_MENU_OPERATIONS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Operations']");
	public final static By HOME_MAIN_MENU_ASSETS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Assets']");
	public final static By HOME_MAIN_MENU_CONTRACTS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Contracts']");
	public final static By HOME_MAIN_MENU_REPORTS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Reports']");
	public final static By HOME_MAIN_MENU_INVENTORY = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Inventory']");
	public final static By HOME_MAIN_MENU_HR = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='HR']");
	public final static By HOME_MAIN_MENU_ITAD = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='ITAD']");
	public final static By HOME_MAIN_MENU_TOOLS = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Tools']");
	public final static By HOME_MAIN_MENU_YOUR_ACCOUNT = By.xpath("//span[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//td[text()='Your Account']");
	public final static By HOME_MAIN_MENU_MOBILE_APP = By.xpath("//*[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//img[contains(@src,'mobile_phone.png')]");
	public final static By HOME_MAIN_MENU_TIME_CLOCK = By.xpath("//*[@id='" + HOME_SPAN_MAIN_MENU_ID_STR + "']//img[contains(@src,'Timeclock.png')]");
	
	/** Sub menu span*/
	private final static String HOME_SPAN_SUB_MENU_ID_STR = "menu_SubMenu";
	
	/** Sub menu item Ticketing \ New Incident (Call Center)*/
	public final static By HOME_SUB_MENU_SEARCH          = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'Search']");
	/** Sub menu item Ticketing \ List*/
	public final static By HOME_SUB_MENU_LIST            = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'List']");
	/** Sub menu item Ticketing \ New Incident*/
	public final static By HOME_SUB_MENU_NEW_INCIDENT    = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'New Incident (Call Center)']");
	/** Sub menu item Ticketing \ New Sms Ticket*/
	public final static By HOME_SUB_MENU_NEW_TICKET      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'New SMS Ticket']");
	/** Sub menu item Ticketing \ SLA Minder*/
	public final static By HOME_SUB_MENU_SLAMINDER      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'SLA Minder']");
	/** Sub menu item Ticketing \ Dispath*/
	public final static By HOME_SUB_MENU_DISPATH      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'Dispatch']");
	/** Sub menu item Ticketing \ Call Home E-Mails*/
	public final static By HOME_SUB_MENU_CALL_HOME_EMAIL      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'Call Home E-Mails']");
	/** Sub menu item Ticketing \ Call Home Rules*/
	public final static By HOME_SUB_MENU_CALL_HOME_RULES      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'Call Home Rules']");

	
	/**Sub menu item SROs \ Search*/
	public final static By Home_SUB_MENU_SRO_SEARCH = By.id("TD_8b95541b-3fbe-4c43-a3d9-5a48c8cb45f0_2a4ba664-0bf7-4a0e-a42f-a2191b6bba4f"); 
	/**Sub menu item SROs \ List*/
	public final static By HOME_SUB_MENU_SRO_LIST = By.id("TD_8b95541b-3fbe-4c43-a3d9-5a48c8cb45f0_e4a29a0a-698e-4f42-8f76-8e5a4de5625e");
	/**Sub menu item SROs \ Approvals*/
	public final static By HOME_SUB_MENU_SRO_APPROVALS = By.id("TD_8b95541b-3fbe-4c43-a3d9-5a48c8cb45f0_f10b704a-607c-43ea-964b-68695346012a");
	
	/** Sub menu item Operations \ Site Audit*/
	public final static By HOME_SUB_MENU_SITE_AUDIT      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'Site Audit']");
	
	/** Sub menu item Assets \ search*/
	public final static By HOME_SUB_MENU_AST_SEARCH      = By.id("TD_2d9f8336-7187-4333-a5fe-237dd39c33a4_2a6ff5ac-94ee-4514-a525-4a613bc3ac5f");
	/** Sub menu item Assets \ list*/
	public final static By HOME_SUB_MENU_AST_LIST      = By.id("TD_2d9f8336-7187-4333-a5fe-237dd39c33a4_04bc69a1-9c5e-4380-92c1-f2b598cf0077");
	/** Sub menu item Assets \ new*/
	public final static By HOME_SUB_MENU_AST_NEW      = By.id("TD_2d9f8336-7187-4333-a5fe-237dd39c33a4_ea5d5759-1db1-40a5-b30c-da245ca3bbc0");
	/** Sub menu item Assets \ location*/
	public final static By HOME_SUB_MENU_AST_LOCATION      = By.id("TD_2d9f8336-7187-4333-a5fe-237dd39c33a4_b124fde6-0dee-4145-ae85-73844d80b6c0");
	/** Sub menu item Assets \ report*/
	public final static By HOME_SUB_MENU_AST_REPORT      = By.id("TD_2d9f8336-7187-4333-a5fe-237dd39c33a4_cb42c2ac-122c-4bf0-beec-c006bfed143a");
	
	/** Sub menu item Contracts \ "search"*/
	public final static By HOME_SUB_MENU_CONTRACTS_SEARCH     = By.id("TD_758f4bdc-5348-4af1-829f-de0088a53f0d_cf708f47-2ddb-4848-9458-b149660e19a7");
	/** Sub menu item Contracts \ "list"*/
	public final static By HOME_SUB_MENU_CONTRACTS_LIST     = By.id("TD_758f4bdc-5348-4af1-829f-de0088a53f0d_af05c52b-63f6-4cec-be30-deaed8006614");
	/** Sub menu item Contracts \ "new"*/
	public final static By HOME_SUB_MENU_CONTRACTS_NEW     = By.id("TD_758f4bdc-5348-4af1-829f-de0088a53f0d_98bbecb0-78db-44ef-802f-14dd44a38577");
	/** Sub menu item Contracts \ "Changes / Renewals"*/
	public final static By HOME_SUB_MENU_CONTRACTS_CHANGES_RENEWALS     = By.id("TD_758f4bdc-5348-4af1-829f-de0088a53f0d_d6bea4ea-cf9a-4efc-991d-c7c430df5d63");
	/** Sub menu item Contracts \ "Asset / Contract Search"*/
	public final static By HOME_SUB_MENU_CONTRACTS_ASSET_SEARCH     = By.id("TD_758f4bdc-5348-4af1-829f-de0088a53f0d_fa3b6662-f61a-429f-b940-f9ed0b23ecda");
	/** Sub menu item Contracts \ "Quoter"*/
//	public final static By HOME_SUB_MENU_CONTRACTS_QUOTER     = By.id("efb71895-9706-4c51-aff1-3a3589410a16_TD_758f4bdc-5348-4af1-829f-de0088a53f0d_10805904-6701-489f-87c2-e27774bc13fb");
	/** Sub menu item Ticketing \ Call Home Rules*/
	public final static By HOME_SUB_MENU_CONTRACTS_QUOTER      = By.xpath("//span[@id='" + HOME_SPAN_SUB_MENU_ID_STR + "']//td[text() = 'Quoter']");
	/**Sub menu item Inventory \ Item LookUp*/
	public final static By HOME_SUB_MENU_INVENTORY_ILUP = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_7de7b57b-fb55-4914-885b-c172caa85f52");
	/**Sub menu item Inventory \ Bin Transfer*/
	public final static By HOME_SUB_MENU_INVENTORY_BT = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_f12c6180-dbe1-4d99-994e-d0e396a15fb6");
	/**Sub menu item Inventory \ Check Out*/
	public final static By HOME_SUB_MENU_INVENTORY_CO = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_11418435-c74d-44fb-9293-baf23ab71b7f");
	/**Sub menu item Inventory \ Check In*/
	public final static By HOME_SUB_MENU_INVENTORY_CI = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_8ac225e2-c1fd-49be-805c-5d082634b7e1");
	/**Sub menu item Inventory \ Requisition Entry*/
	public final static By HOME_SUB_MENU_INVENTORY_RE = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_f6c90bd2-bf04-4d86-a115-4e78ddf0bc9d");
	/**Sub menu item Inventory \ Requisition Dash board*/
	public final static By HOME_SUB_MENU_INVENTORY_RD = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_74c871ac-0f72-4679-9454-79d61bb2cb38");
	/**Sub menu item Inventory \ Print Bin Tags*/
	public final static By HOME_SUB_MENU_INVENTORY_PBT = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_44a10ce7-d846-42c1-a7e4-6e9a286bac69");
	/**Sub menu item Inventory \ Print Inventory Tags*/
	public final static By HOME_SUB_MENU_INVENTORY_PIT = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_54006a9b-f37c-42cf-912f-6c193e26083f");
	/**Sub menu item Inventory \ Print Queue*/
	public final static By HOME_SUB_MENU_INVENTORY_PQ = By.id("TD_99d4e78d-afb8-4629-8377-7eccb15e0f4f_2b5f6c4d-c0c0-4f77-b4c8-1fb68c512c78");
	
	/**Sub menu HR \ New Hire*/
	public final static By HOME_SUB_MENU_HR_NEW_HIRE = By.id("TD_cc371ef9-be15-4289-9b15-0d6bebb387b4_5251a826-46fd-46d7-8d55-aa41c2f73d97");
	/**Sub menu HR \ Skill Management*/
	public final static By HOME_SUB_MENU_HR_SKILL_MANAGEMENT = By.id("TD_cc371ef9-be15-4289-9b15-0d6bebb387b4_549f8f9e-66cb-42ca-909a-0d18bf814d77");
	
	/**Sub menu ITAD \ Inventory Management*/
	public final static By HOME_SUB_MENU_ITAD_INVENTORY_MANAGEMENT = By.id("TD_dc3f39a0-a6f1-43bb-a82f-ce80c584390e_1dee504b-47db-4b7f-b102-544c43bb8091"); 
	
	/**Sub menu Tools \ User-Defined Forms*/
	public final static By HOME_SUB_MENU_TOOLS_USER_DEFINED_FORMS = By.id("TD_f01a7955-3387-44b0-a707-f51b53b66ceb_0949d9d1-20ec-427f-a69a-c87b8f32ba09");
	
	/**Sub menu Your Account \ User Profile*/
	public final static By HOME_SUB_MENU_YOUR_ACCOUNT_USER_PROFILE = By.id("TD_f1365507-4d15-488c-a527-a59a654c68ad_f0559029-c2ca-498f-afea-7f855c39d011");
	/**Sub menu Your Account \ Customer Details*/
	public final static By HOME_SUB_MENU_YOUR_ACCOUNT_CUSTOMER_DETAILS = By.id("TD_f1365507-4d15-488c-a527-a59a654c68ad_5fe5a84b-bd47-4159-b6fc-ea965d6164d5");
	
	/**Sub menu Time Clock Timecard*/
	public final static By HOME_SUB_MENU_TIME_CLOCK_TIMECARD = By.id("TD_9799ee8a-b40b-4e67-949a-805a7a3a9246_c3d98c98-df1b-4fe5-8c5f-cc7ac9f22be1");
	/**Sub menu Time Clock Timecard Summary*/
	public final static By HOME_SUB_MENU_TIME_CLOCK_TIMECARD_SUMMARY = By.id("TD_9799ee8a-b40b-4e67-949a-805a7a3a9246_0db989cf-3c6e-4796-a9cb-562c108b1241");
	
	/**enter Home page*/
	public final static void enter() {
		SpLoginPageUtil.enter();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SpLoginPageUtil.login();
		SeleniumUtil.waitForFixedMilliseconds(1000);
	}
	
	/** if element HOME_SPAN_EXPIRATION shows, this page should has already been loaded.*/
	public final static void waitForPageToLoad() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectFrame(HOME_FRAME_CONTENT_NAME);
		SeleniumUtil.waitForFixedMilliseconds(3000);
	}
	
	/**Change the customer from the top right field*/
	public final static void changeCustomer(String customerName){
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		WebElement lbl_cus = SeleniumUtil.getCachedElement(HOME_SPAN_CUSTOMER_NAME);
		SeleniumUtil.click(lbl_cus);
		WebElement input_cus = SeleniumUtil.getCachedElement(HOME_INPUT_CUSTOMER_NAME);
		SeleniumUtil.clear(input_cus);
		SeleniumUtil.sendKeys(input_cus, customerName);
		WebElement customer = SeleniumUtil.getCachedElement(HOME_SPAN_CUSTOMER_NAME_LIST);
		SeleniumUtil.waitPageToLoad(customer);
		SeleniumUtil.click(SeleniumUtil.findElement(customer, By.xpath("//td[text()='"+customerName.trim()+"']")));
		SeleniumUtil.waitForFixedMilliseconds(3000);
	}
	
	/**Change the user from the dropdown at bottom left field*/
	public final static void changeUser(String userName){
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_FOOTER_NAME);
		WebElement userList = SeleniumUtil.getCachedElement(HOME_SELECT_USER_LIST);
		SeleniumUtil.click(SeleniumUtil.findElement(userList, By.xpath("//option[text()='"+userName.trim()+"']")));
	}
	
	
	/**get Main Menu tabs*/
	public final static WebElement getMainMenuTicketing(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_TICKETING);
	}
	
	public final static WebElement getMainMenuActivityBoard(){
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_ACTIVITY_BOARD);
	}
	
	private static WebElement getMainMenuSRO() {
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_SROS);
	}
	
	public final static WebElement getMainMenuOperstions(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_OPERATIONS);
	}
	
	public final static WebElement getMainMenuAssets(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_ASSETS);
	}
	
	public final static WebElement getMainMenuContracts(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_CONTRACTS);
	}
	
	private static WebElement getMainReports() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_REPORTS);
	}
	
	private static WebElement getMainMenuInventory() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_INVENTORY);
	}
	
	private static WebElement getMainMenuHR() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_HR);
	}
	
	private static WebElement getMainMenuITAD() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_ITAD);
	}
	
	private static WebElement getMainMenuTools() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_TOOLS);
	}
	
	private static WebElement getMainMenuYourAccount() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_YOUR_ACCOUNT);
	}
    
	private static WebElement getMainMenuMobileApplication() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_MOBILE_APP);
	}
	
	private static WebElement getMainTimeClock() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_MAIN_MENU_TIME_CLOCK);
	}
	
	
	/**get Sub Menu under Ticketing*/
	public final static WebElement getSubMenuSearch(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_SEARCH);
	}
	
	public final static WebElement getSubMenuList(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_LIST);
	}
	
	public final static WebElement getSubMenuNewIncident(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_NEW_INCIDENT);
	}
	
	public final static WebElement getSubMenuNewTicket(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_NEW_TICKET);
	}
	
	public final static WebElement getSubMenuTicketSlaMinder(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_SLAMINDER);
	}
	
	public final static WebElement getSubMenuTicketDispath(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_DISPATH);
	}
	
	private static WebElement getSubMenuCallHomeEmail() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_CALL_HOME_EMAIL);
	}
	
	private static WebElement getSubMenuCallHomeRules() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_CALL_HOME_RULES);
	}
	
	
	/**get Sub Menu under SROs*/
	private static WebElement getSubMenuSROSearch() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(Home_SUB_MENU_SRO_SEARCH);
	}
	
	private static WebElement getSubMenuSROList() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_SRO_LIST);
	}
	
	private static WebElement getSubMenuSROApprovals() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_SRO_APPROVALS);
	}
	
	
	/**get Sub Menu under Operations*/
	public final static WebElement getOperatioinsSiteAudit(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_SITE_AUDIT);
	}
	
	
	/**get Sub Menu under Assets*/
	public final static WebElement getAssetsSearch(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_AST_SEARCH);
	}
	
	public final static WebElement getAssetsList(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_AST_LIST);
	}
	
	public final static WebElement getAssetsNew(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_AST_NEW);
	}
	
	public final static WebElement getAssetsLocation(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_AST_LOCATION);
	}
	
	public final static WebElement getAssetsReport(){
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_AST_REPORT);
	}
	
	
	/**get Sub Menu under Contracts*/
	
	
	
	/**get Sub Menu under Reports*/
	
	
	
	
	/**get Sub Menu under Inventory*/
	private static WebElement getSubMenuInventoryItemLook() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_ILUP);
	}
	
	private static WebElement getSubMenuBinTransfer() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_BT);
	}
	
	private static WebElement getSubMenuCheckOut() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_CO);
	}
	
	private static WebElement getSubMenuCheckIn() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_CI);
	}
	
	private static WebElement getSubMenuRequisitionEntry() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_RE);
	}
	
	private static WebElement getSubMenuRequisitionDashboard() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_RD);
	}
	
	private static WebElement getSubMenuPrintBinTags() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_PBT);
	}
	
	private static WebElement getSubMenuPrintInventoryTags() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_PIT);
	}
	
	private static WebElement getSubMenuPrintQueue() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_INVENTORY_PQ);
	}
	
	
	/**get Sub Menu under HR*/
	private static WebElement getSubMenuNewHire() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_HR_NEW_HIRE);
	}
	
	private static WebElement getSubMenuSkillManagement() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_HR_SKILL_MANAGEMENT);
	}
	
	
	/**get Sub Menu under ITAD*/
	private static WebElement getITADInventoryManagement() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_ITAD_INVENTORY_MANAGEMENT);
	}
	
	
	/**get Sub Menu under Tools*/
	private static WebElement getToolsUserDefinedForms() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_TOOLS_USER_DEFINED_FORMS);
	}
	
	
	/**get Sub Menu under Your Account*/
	private static WebElement getYourAccountUserProfile() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_YOUR_ACCOUNT_USER_PROFILE);
	}
	
	private static WebElement getYourAccountCustomerDetails() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_YOUR_ACCOUNT_CUSTOMER_DETAILS);
	}
	
	
	/**get Sub Menu under Your TimeClock*/
	private static WebElement getTimeClockTimecard() {
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_TIME_CLOCK_TIMECARD);
	}
	private static WebElement getTimeClockTimecardSummary() {
		SeleniumUtil.click(getMainMenuMobileApplication());
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_HEADER_NAME);
		return SeleniumUtil.getCachedElement(HOME_SUB_MENU_TIME_CLOCK_TIMECARD_SUMMARY);
	}
	
	
	/** enter Ticketing - Search page*/
	public final static void enterSearchPage() {
		// click Ticketing
		SeleniumUtil.click(getMainMenuTicketing());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_SEARCH});
		
		//click "Search" 
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuSearch());
		// wait elements to load
		SpSearchPageUtil.waitForPageToLoad();
	}
	
    /** enter Ticketing - List page*/
	public final static void enterListPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_LIST});
		
		//click "List" 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuList());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpTicketListPageUtil.waitForPageToLoad();
	}
	
	/** enter Ticketing - New Incident page*/
	public final static void enterNewIncidentPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_NEW_INCIDENT});
		
		//click "New Incident (Call Center)" 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.click(getSubMenuNewIncident());
		SeleniumUtil.waitForFixedMilliseconds(1000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpNewIncidentPageUtil.waitForPageToLoad();
	}
	
	/** enter Ticketing - New SMS Ticket page*/
	public final static void enterNewTicketPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_NEW_TICKET});
		
		//click "New SMS Ticket" 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuNewTicket());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpNewTicketPageUtil.waitForPageToLoad();
	}
    
	/** enter Ticketing - SLA Minder page*/
	public final static void enterTicketSlaMinderPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_SLAMINDER});
		
		//click Ticket SlaMinder 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuTicketSlaMinder());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpTicketSlaMinderPageUtil.waitForPageToLoad();
	}
	
	/** enter Ticketing - Dispatch page*/
	public final static void enterTicketDispathPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_DISPATH});
		
		//click Ticket SlaMinder 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.click(getSubMenuTicketDispath());
		SeleniumUtil.waitForFixedMilliseconds(1000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
	}
	
    /** enter Ticketing - Call Home Emails page*/
	public final static void enterCallHomeEmailPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CALL_HOME_EMAIL});
		
		//click "Call Home E-Mails" 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuCallHomeEmail());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpTicketCallHomeEmailPageUtil.waitForPageToLoad();
	}
	
	/** enter Ticketing - Call Home Rules page*/
	public final static void enterCallHomeRulesPage() {
		// click Ticketing
		WebElement ticketing = getMainMenuTicketing();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CALL_HOME_RULES});
		
		//click "Call Home E-Mails" 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuCallHomeRules());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpTicketCallHomeRulesPageUtil.waitForPageToLoad();
	}
	
	/** enter Activity Board page*/
	public static void enterActivityBoardPage(){
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getMainMenuActivityBoard());
		SpActivityBoardPageUtil.waitForPageToLoad();
		SeleniumUtil.waitForFixedMilliseconds(3000);
	}
	
	
	/** enter SROs - Search page*/
	public final static void enterSROSearchPage(){
		// click SROs
		SeleniumUtil.click(getMainMenuSRO());
		SeleniumUtil.waitOnElements(new By[]{Home_SUB_MENU_SRO_SEARCH, HOME_SUB_MENU_SRO_APPROVALS, HOME_SUB_MENU_SRO_LIST});
		
		// click "Search"
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuSROSearch());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		SpSROSearchPageUtil.waitForPageToLoad();
	}
	
	/** enter SROs - List page*/
	public static void enterSROListPage() {
		// click SROs
		SeleniumUtil.click(getMainMenuSRO());
		SeleniumUtil.waitOnElements(new By[]{Home_SUB_MENU_SRO_SEARCH, HOME_SUB_MENU_SRO_APPROVALS, HOME_SUB_MENU_SRO_LIST});
		
		// click "List"
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuSROList());
		SeleniumUtil.waitForFixedMilliseconds(3000);
		SpSROListPageUtil.waitForPageToLoad();
	}
	
	/** enter SROs - Approvals page*/
	public static void enterSROApprovalsPage() {
		// click SROs
		SeleniumUtil.click(getMainMenuSRO());
		SeleniumUtil.waitOnElements(new By[]{Home_SUB_MENU_SRO_SEARCH, HOME_SUB_MENU_SRO_APPROVALS, HOME_SUB_MENU_SRO_LIST});
		
		// click "Approvals"
		SeleniumUtil.click(getSubMenuSROApprovals());
		SpSROApprovalsPageUtil.waitForPageToLoad();
	}
	
	/** enter Operations - Site Audit page*/
	public final static void enterOperatioinsSiteAuditPage() {
		// click Operations
		WebElement ticketing = getMainMenuOperstions();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_SITE_AUDIT});
		
		//click "Site Audit" 
		Set<String> before = SeleniumUtil.getWindowHandles();
		SeleniumUtil.click(getOperatioinsSiteAudit());
		SeleniumUtil.waitForFixedMilliseconds(1000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
		// wait elements to load
		SpOperationsSiteAuditPageUtil.waitForSiteAuditPageToLoad();
	}
	
	/** enter Assets - xxxx page*/
	
	
	/** enter Contracts - Search page*/
	public final static void enterContractsSearch() {
		// click Contracts
		WebElement ticketing = getMainMenuContracts();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CONTRACTS_SEARCH});
		// click search
		SeleniumUtil.click(SeleniumUtil.getCachedElement(HOME_SUB_MENU_CONTRACTS_SEARCH));
		SeleniumUtil.waitForFixedMilliseconds(1000);
	}
	
	/** enter Contracts - List page*/
	public final static void enterContractsList() {
		// click Contracts
		WebElement ticketing = getMainMenuContracts();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CONTRACTS_LIST});
		// click list
		SeleniumUtil.click(SeleniumUtil.getCachedElement(HOME_SUB_MENU_CONTRACTS_LIST));
		SeleniumUtil.waitForFixedMilliseconds(1000);
	}
	
	/** enter Contracts - New page*/
	public final static void enterContractsNew() {
		// click Contracts
		WebElement ticketing = getMainMenuContracts();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CONTRACTS_NEW});
		// click new
		SeleniumUtil.click(SeleniumUtil.getCachedElement(HOME_SUB_MENU_CONTRACTS_NEW));
		SeleniumUtil.waitForFixedMilliseconds(1000);
	}
	
	/** enter Contracts - Change /Renewals page*/
	public final static void enterContractsChange() {
		// click Contracts
		WebElement ticketing = getMainMenuContracts();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CONTRACTS_CHANGES_RENEWALS});
		// click change/renewals
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(SeleniumUtil.getCachedElement(HOME_SUB_MENU_CONTRACTS_CHANGES_RENEWALS));
	}
	
	/** enter Contracts - Asset/Contract Search page*/
	public final static void enterContractsAssetSearch() {
		// click Contracts
		WebElement ticketing = getMainMenuContracts();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CONTRACTS_ASSET_SEARCH});
		// click change/renewals
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(SeleniumUtil.getCachedElement(HOME_SUB_MENU_CONTRACTS_ASSET_SEARCH));
	}
	
	/** enter Contracts - Quoter page*/
	public final static void enterContractsQuoter() {
		// click Contracts
		WebElement ticketing = getMainMenuContracts();
		SeleniumUtil.click(ticketing);
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_CONTRACTS_QUOTER});
		Set<String> before = SeleniumUtil.getWindowHandles();
		// click change/renewals
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(SeleniumUtil.getCachedElement(HOME_SUB_MENU_CONTRACTS_QUOTER));
		SeleniumUtil.waitForFixedMilliseconds(1000);
		// if browser prompt out a new window, switch to it
		SeleniumUtil.switchToPromptedWindow(before, SeleniumUtil.getWindowHandles());
	}
	
	/**enter the Reports default page*/
	public static void enterReportsDefaultPage() {
		SeleniumUtil.click(getMainReports());
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(HOME_FRAME_CONTENT_NAME);
		SeleniumUtil.selectFrame(HOME_FRAME_MENU_NAME);
		SpReportsDefaultPageUtil.waitForReportsDefaultPageToLoad();
	}
	
	/** enter Inventory - Item LookUp page*/
	public static void enterInventoryItemLookPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_ILUP});
		SeleniumUtil.click(getSubMenuInventoryItemLook());
		SpInventoryItemLookUpPageUtil.waitForPageToLoad();
	}
	
	/** enter Inventory - Bin Transfer page*/
	public static void enterInventoryBinTransferPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_BT});
		SeleniumUtil.click(getSubMenuBinTransfer());
	}
	
	/** enter Inventory - Check Out page*/
	public static void enterInventoryCheckOutPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_CO});
		SeleniumUtil.click(getSubMenuCheckOut());
		SpInventoryCheckOutPageUtil.waitForPageToLoad();
	}
	
	/** enter Inventory - Check In page*/
	public static void enterInventoryCheckInPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_CI});
		SeleniumUtil.click(getSubMenuCheckIn());
		SpInventoryCheckInPageUtil.waitForPageToLoad();
	}
	
	/** enter Inventory - Requisition Entry page*/
	public static void enterInventoryReqEntryPage() {
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_RE});
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.click(getSubMenuRequisitionEntry());
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SpInventoryRequisitionEntryPageUtil.waitForInventoryReqEntryPageToLoad();
	}
	
	/** enter Inventory - Requisition Dash board page*/
	public static void enterInventoryReqDashboardPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_RD});
		SeleniumUtil.click(getSubMenuRequisitionDashboard());
		SpInventoryRequisitionDashboardPageUtil.waitForInventoryReqDashboardPageToLoad();
	}
	
	/** enter Inventory - Print Bin Tags page*/
	public static void enterInventoryPrintBinTagsPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_PBT});
		SeleniumUtil.click(getSubMenuPrintBinTags());
		SpInventoryPrintBinTagsPageUtil.waitForPageToLoad();
	}
	
	/** enter Inventory - Print Inventory Tags page*/
	public static void enterInventoryPrintInventoryTagsPage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_PIT});
		SeleniumUtil.click(getSubMenuPrintInventoryTags());
		SpInventoryPrintInventoryTagsPageUtil.waitForPageToLoad();
	}
	
	/** enter Inventory - Print Queue page*/
	public static void enterInventoryQueuePage() {
		SeleniumUtil.click(getMainMenuInventory());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_INVENTORY_PQ});
		SeleniumUtil.click(getSubMenuPrintQueue());
		SpInventoryPrintQueuePageUtil.waitForPageToLoad();
	}
	
	/** enter HR - New Hire page*/
	public static void enterHRNewHirePage() {
		SeleniumUtil.click(getMainMenuHR());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_HR_NEW_HIRE});
		SeleniumUtil.click(getSubMenuNewHire());
		SpHRNewHirePageUtil.waitForPageToLoad();
	}
	
	/** enter HR - Skill Management-User List page*/
	public static void enterHRSkillManagementPage() {
		SeleniumUtil.click(getMainMenuHR());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_HR_SKILL_MANAGEMENT});
		SeleniumUtil.click(getSubMenuSkillManagement());
		SeleniumUtil.waitForFixedMilliseconds(1000);
		SeleniumUtil.selectDefaultContent();
		SeleniumUtil.selectFrame(SpHomePageUtil.HOME_FRAME_CONTENT_NAME);
	}
	
	/** enter ITAD - Inventory Management page*/
	public static void enterITADInventoryManagementPage() {
		SeleniumUtil.click(getMainMenuITAD());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_ITAD_INVENTORY_MANAGEMENT});
		SeleniumUtil.click(getITADInventoryManagement());
		SpITADDefaultPageUtil.waitForPageToLoad();
	}
	
	/** enter Tools - User-Defined Forms page*/
	public static void enterToolsUserDefinedFormsPage() {
		SeleniumUtil.click(getMainMenuTools());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_TOOLS_USER_DEFINED_FORMS});
		SeleniumUtil.click(getToolsUserDefinedForms());
		SpToolsUDFDefaultPageUtil.waitForPageToLoad();
	}
	
	/** enter Tools - Maintenance page*/
	
	
	
	/**enter Your Account - User Profile default page*/
	public static void enterYourAccountUserProfileDefaultPage() {
		SeleniumUtil.click(getMainMenuYourAccount());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_YOUR_ACCOUNT_USER_PROFILE, HOME_SUB_MENU_YOUR_ACCOUNT_CUSTOMER_DETAILS});
		SeleniumUtil.click(getYourAccountUserProfile());
		SpYAccountUserProfileDefaultPageUtil.waitForUserProfileDefaultPageToLoad();
	}
	
	/**enter Your Account - Customer Details default page*/
	public static void enterYourAccountCustomerDetailsDefaultPage() {
		SeleniumUtil.click(getMainMenuYourAccount());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_YOUR_ACCOUNT_USER_PROFILE, HOME_SUB_MENU_YOUR_ACCOUNT_CUSTOMER_DETAILS});
		SeleniumUtil.click(getYourAccountCustomerDetails());
		SpYAccountCustomerDetailsDefaultPageUtil.waitForPageToLoad();
	}
	
	/** enter Mobile Application page*/
	public static void enterMobileApplicationPage() {
		SeleniumUtil.click(getMainMenuMobileApplication());
		SpMobileApplicationPageUtil.waitForPageToLoad();
	}
	
	/**enter Time Clock - Time Card page*/
	public static void enterTimeClockTimecardPage() {
		SeleniumUtil.click(getMainTimeClock());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_TIME_CLOCK_TIMECARD, HOME_SUB_MENU_TIME_CLOCK_TIMECARD_SUMMARY});
		SeleniumUtil.click(getTimeClockTimecard());
		SpTimeClockTimecardPageUtil.waitForPageToLoad();
	}
	
	
	/**enter Time Clock - Timecard Summary page*/
	public static void enterTimeClockTimecardSummaryPage() {
		SeleniumUtil.click(getMainTimeClock());
		SeleniumUtil.waitOnElements(new By[]{HOME_SUB_MENU_TIME_CLOCK_TIMECARD_SUMMARY});
		SeleniumUtil.click(getTimeClockTimecardSummary());
		SpTimeClockTimecardSummaryPageUtil.waitForPageToLoad();
	}
}
